#include <stdio.h> 
#import "checkers_logic/checkers.h"
#import "checkers_players/CheckersPlayer.h"

@interface CheckersGameState : NSObject{
    id<CheckersPlayer> player1;
    id<CheckersPlayer> player2;
    CheckersBoard chb;
    CheckersUnmove unmoves[MAX_CHECKERS_GAME];
    int moveAmount;
    
    //Interface related variables
    BOOL pieceIsSelected;
    CheckersPos selectPosition;
    //
    
    BOOL isPaused;
    
    //Hint information
    BOOL hintIsShown;
    CheckersMove hintMove;
    
    //
}
/* Returns true if a move is made, false if move not possible*/
-(BOOL) makeMove : (CheckersMove*) move;
-(BOOL) unmakeMove;
-(CheckersBoard*) getBoardRef;
-(void) prepareForNextMove;


@property (strong, retain) id<CheckersPlayer> player1;
@property (strong, retain) id<CheckersPlayer> player2;

@property CheckersPos selectPosition;
@property BOOL pieceIsSelected;
@property BOOL isPaused;
@property int moveAmount;

-(void) togglePauseState;

-(id<CheckersPlayer>) currentPlayer;
@end
